The present invention is directed, in general, to real-time process control systems and, more specifically, to a system and method for disseminating functional blocks to an on-line redundant controller of a real-time process control system.
Real-time process control systems were first implemented within a single computer system. As the need to monitor and control more physical devices increased, the complexity and size of the process control systems also increased. With this increased complexity and size came the problem of computer system failures. Computer system failures not only caused downtime, but also included the loss of monitoring and collecting data for that area of the real-time process control system. designated the primary computer at a given time and the other computer is designated the backup computer. If the primary computer failed to operate properly, the backup computer took over the functions of the primary computer.
The primary computer transferred the real-time process control data to the backup computer at regular intervals. This kept the backup computer up-to-date in case the backup computer was required to assume the status of primary computer. However, not all information could be transferred while both computers were on-line.
Information that could not be transferred on-line included control applications. Control applications consisted of a static set of control algorithms (xe2x80x9cstatic function blocksxe2x80x9d) and/or a dynamic set of control algorithms (xe2x80x9cdynamic function blocksxe2x80x9d) associated with the controller. Static function blocks are associated with the control routines and control definitions contained within the personality of the controller. Dynamic function blocks are associated with the control routines and control definitions contained within the dynamically linked library objects. The static and dynamic function blocks also included information that was related to the control devices associated with the real-time process control system.
The dynamically linked. library objects included process control routines and control definitions used to control devices attached to the real-time process control system. In other types of operating systems, the dynamically linked library object are called shared libraries.
To modify or add to the existing control routines and control definitions on both computers required several steps. First, the backup computer was taken off-line. The personality and/or dynamically linked library objects were updated on the off-line computer. Next, the off-line computer was brought on-line and was designated the primary computer. Then, the other computer was taken off-line. The personality and/or the dynamically linked library objects were updated on the off-line computer. Then, the computer was brought back on-line as the backup computer.
However, this procedure left the redundant computer system vulnerable. If the primary computer failed while the other computer was off-line, the real-time process control data would be lost and the devices could not be controlled until the other computer was brought back on-line. This seriously compromised the integrity and operation of the real-time process control system as a whole.
Therefore, what is needed in the art is an improved way to transfer information, such as dynamically linked library objects and static and dynamic functional blocks, between redundant computers while both computers are on-line.
To address the above-discussed deficiencies of the prior art, the present invention provides a system for, and method of, disseminating a functional block to a redundant controller for a real-time process control system and a real-time process control system incorporating the system or the method. In one embodiment, the system includes: (1) a dynamically linkable library (perhaps DLL) object associable with the functional block and (2) a shared memory, associated with at least two nodes of the redundant controller, that receives the dynamically linkable library object and the functional block and provides concurrent access thereto by both the at least two nodes to ensure consistent memory images therefore without requiring one of the at least two nodes to be taken off-line.
The present invention therefore introduces the broad concept of employing dynamically linkable library objects in combination with shared memory to provide a functional block and dynamically linkable library objects to at least two nodes of a redundant controller without requiring any of the at least two nodes to be taken off-line. Thus, the present invention allows new and/or modified control routines and definitions to be accessible or transferred between at least two nodes of a redundant controller without requiring any of the at least two nodes to be taken off-line.
In one embodiment of the present invention, the shared memory is a logical shared memory. Alternatively, the shared memory may be a physical shared memory. In an embodiment to be illustrated and described, the system further includes a controller redundancy synchronization mechanism (CRSM), coupled to the shared memory, that governs consistency between the memory images. The CRSM ensures that the memory of one node matches the memory of the other node, at least to the extent of the shared memory area.
In one embodiment of the present invention, the functional block is a part of a functional class. Those skilled in the pertinent art are familiar with the concept of objects and object classes. The present invention advantageously operates within the is environment of object-oriented programming to lend flexibility to the architecture of control software.
In one embodiment of the present invention, one of the at least two nodes is designated a primary node at a given point in time. Any remaining nodes are designated secondary nodes. Of course, the designations may change over time.
In one embodiment of the present invention, the dynamically linkable library object is registrable with respect to an operating system governing operation of the at least two nodes. Those skilled in the pertinent art are familiar with the process and objectives of registration.
In one embodiment of the present invention, the dynamically linkable library object is synchronized at a selected one of predetermined points-in-execution. The present invention preferably ensures consistency between multiple memory images by ensuring that the memory images at predesignated points-in execution are identical. Of course, consistency can be more rigorous, requiring identity at all shared memory locations.
In one embodiment of the present invention, the functional block is a type selected from the group consisting of (1) a static functional block, and (2) a dynamic functional block. In other embodiments of the present invention, the functional block can be other types that allow additional information associated with a real-time process control system to be accessible between the nodes of a redundant controller.
In one embodiment of the present invention, the functional block is uninstallable on each of the at least two nodes while the redundant controller is on-line. The present invention allows functional blocks that are unused, or for some other reason, to be uninstalled on each of the redundant controller""s nodes thus saving space and execution time on the redundant controller""s node.
The foregoing has outlined, rather broadly, preferred and alternative features of the present invention so that those skilled in the art may better understand the detailed description of the invention that follows. Additional features of the invention will be described hereinafter that form the subject of the claims of the invention. Those skilled in the art should appreciate that they can readily use the disclosed conception and specific embodiment as a basis for designing or modifying other structures for carrying out the same purposes of the present invention. Those skilled in the art should also realize that such equivalent constructions do not depart from the spirit and scope of the invention in its broadest form.